In object-oriented programming languages, including Java and C# languages, a string pool is a data structure managed internally by the platform or virtual machine to facilitate efficient implementation of certain string processing tasks. The pool contains a single copy of each distinct string that is currently represented by a string object in the system. By invoking a method of the string class (for example String.intern( ) in Java), the programmer has access to this unique string object. However, such an arrangement can result in the unnecessary creation of temporary objects as well as the unnecessary temporary allocation of memory.